package library.frame;

import library.logic.Tema;

import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import java.util.Vector;

/**
 * User: RockCrazy
 * Date: 16.01.12
 * Time: 18:29
 */
public class TemaTableModel extends AbstractTableModel
{
	private Vector tems;

	/**
	 * Конструктор
	 * @param tems
	 */
	public TemaTableModel(Vector tems)
	{
		this.tems = tems;
	}


	/**
	 * Выбор темы по номеру строки
	 * @param rowIndex
	 * @return
	 */
	public Tema getTema(int rowIndex)
	{
		if (tems != null)
		{
			if (rowIndex < tems.size() && rowIndex >= 0)
			{
				return (Tema) tems.get(rowIndex);
			}
		}
		return null;
	}


	/**
	 * Возвращаем количество строк
	 * @return
	 */
	public int getRowCount()
	{
		if (tems != null)
		{
			return tems.size();
		}
		return 0;
	}

	/**
	 * Возвращаем количество столбцов
	 * @return
	 */
	public int getColumnCount()
	{
		return 2;
	}

	/**
	 * Возвращаем наименование столбцов
	 * @param column
	 * @return
	 */
	public String getColumnName(int column)
	{
		String[] colNames = {"№ пп", "Наименование"};
		return colNames[column];
	}

	/**
	 * Возможность редактирования ячеек таблицы
	 * @param row
	 * @param col
	 * @return
	 */
	public boolean isCellEditable(int row, int col)
	{
		if (col < 1)
		{
			return false;
		} else
		{
			return true;
		}
	}

	public Object getValueAt(int rowIndex, int columnIndex)
	{
		if (tems != null)
		{
			// Получаем из вектора темы
			Tema tema = (Tema) tems.get(rowIndex);
			// В зависимости от колонки возвращаем ID, Наименование
			switch (columnIndex)
			{
				case 0:
					return tema.getTemaId();
				case 1:
					return tema.getTemaName();
			}
		}
		return null;
	}
}
